Inter-track interference cancelation for shingled magnetic recording

ABSTRACT

Inter-track interference cancelation is disclosed, including: receiving an input sequence of samples associated with a track on magnetic storage; using a processor to generate inter-track interference (ITI) data associated with a first side track including by performing a correlation between the input sequence of samples and a sequence of data associated with the first side track.

CROSS REFERENCE TO OTHER APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 61/408,369 entitled INTER-TRACK INTERFERENCE CANCELATION FORSHINGLED MAGNETIC RECORDING filed Oct. 29, 2010 which is incorporatedherein by reference for all purposes.

BACKGROUND OF THE INVENTION

Shingled magnetic recording (SMR) is a technique that increases thecapacity of hard-disk drives (HDDs). In contrast to traditional magneticrecording, in which cylinders are written in a non-overlapping manner,SMR groups together a block of N adjacent tracks (referred to as a“shingle”), which are written in-order (i.e., track 0, track 1, . . . ,track N−1) with a decreased track spacing. As a result, each subsequenttrack is written close enough to the previously written track such thatit will overlap a portion of it. Once a shingle is completely written,tracks within the shingle cannot be modified without re-writing theentire shingle. This approach may be used to increase the number oftracks that may be written to the disk.

However, squeezing the number of tracks written to a disk does not comewithout some tradeoffs. As tracks are squeezed closer together, readingback a track within a shingle is made difficult because the read-headwill, in addition to sensing the magnetic field of the desired track,also sense the magnetic-field due to adjacent tracks. This phenomenon,known as inter-track interference (ITI), becomes a dominant contributorof noise as the track density is increased. It would be desirable tocancel ITI from one or more adjacent tracks in a shingle to improve theoverall signal quality.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the followingdetailed description and the accompanying drawings.

FIG. 1 is an example of a three-track shingled write.

FIG. 2 shows an example of alignment between three adjacent tracks.

FIG. 3 is a diagram showing an embodiment of a system for ITIcancelation.

FIG. 4 is a flow diagram showing an embodiment of a process forcanceling ITI from a center track.

FIG. 5 is a flow diagram showing an embodiment of a process forgenerating ITI data associated with a side track.

FIG. 6 shows an example of a plot of C_(m) ^((N−1)) over mε{−35, . . . ,35} where L_(max)=35.

FIG. 7 shows an example of adjacent tracks with frequency offsets.

FIG. 8 shows an example of a plot of correlation coefficients withdifferent relative phase offsets.

FIG. 9 shows an example in which a sector is fragmented based on theposition of Servo wedges.

FIG. 10 is a diagram showing an embodiment of a system for ITIcancelation, where ITI cancelation is independently performed for eachfragment.

FIG. 11 is an example of a plot of Soft-Output Vertibi Algorithm (SOVA)bit rate error (BER) as a function of the read-offset with and withoutthe use of ITI cancelation.

FIG. 12 is an example of SOVA BER using ITI cancelation and theindividual interference noise powers and the total interference power.

FIG. 13 is a flow diagram showing an embodiment of a process fordetermining a new position for a read-head.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as aprocess; an apparatus; a system; a composition of matter; a computerprogram product embodied on a computer readable storage medium; and/or aprocessor, such as a processor configured to execute instructions storedon and/or provided by a memory coupled to the processor. In thisspecification, these implementations, or any other form that theinvention may take, may be referred to as techniques. In general, theorder of the steps of disclosed processes may be altered within thescope of the invention. Unless stated otherwise, a component such as aprocessor or a memory described as being configured to perform a taskmay be implemented as a general component that is temporarily configuredto perform the task at a given time or a specific component that ismanufactured to perform the task. As used herein, the term ‘processor’refers to one or more devices, circuits, and/or processing coresconfigured to process data, such as computer program instructions.

A detailed description of one or more embodiments of the invention isprovided below along with accompanying figures that illustrate theprinciples of the invention. The invention is described in connectionwith such embodiments, but the invention is not limited to anyembodiment. The scope of the invention is limited only by the claims andthe invention encompasses numerous alternatives, modifications andequivalents. Numerous specific details are set forth in the followingdescription in order to provide a thorough understanding of theinvention. These details are provided for the purpose of example and theinvention may be practiced according to the claims without some or allof these specific details. For the purpose of clarity, technicalmaterial that is known in the technical fields related to the inventionhas not been described in detail so that the invention is notunnecessarily obscured.

FIG. 1 is an example of a three-track shingled write. In the example,the three tracks are Track N−1, Track N, and Track N+1. In the example,the written track centers are shown as dashed lines and the track edgesare shown as sold lines. Tracks N−1, N, and N+1 are written in-order, inan overlapping manner, which acts to increase the number of trackswritten per radial inch of a magnetic disk. In the example, the signalread from Track N can be affected by the ITI contributed by adjacenttracks, Track N−1 and Track N+1. As such, to improve the quality of thesignal read from Track N, the ITI from one or both of Track N−1 andTrack N+1 is canceled from the signal from Track N. Herein, Track N cansometimes be referred to as a “center track.” Herein, Track N−1 andTrack N+1 can each be referred to as an “adjacent track” or a “sidetrack.”

As disclosed herein, ITI from one or both of the side tracks of a centertrack from which data is desired to be read is canceled from the signalread from the center track. In some embodiments, the ITI from one orboth of the side tracks of a center track is canceled during normaloperation (e.g., in parallel as data from the center track is read anddecoded). In some embodiments, the ITI from one or both of the sidetracks of a center track is canceled during recovery (e.g., subsequentto data having been read and attempted to be decoded from the centertrack and/or after one or more decoding failures have occurred). In someembodiments, a minimum standard of performance must be met such that thefollowing two conditions hold: 1) during normal operation, the act ofentering recovery can occur no more frequently than a givenspecification (typically, no more than 1 sector in 100,000 sectors canenter recovery) such that the performance degradation caused isimperceptible to the user 2) In the event that recovery is entered,nearly all data that enters recovery must be successfully recovered(i.e., it is not acceptable to declare data unrecoverable). In someembodiments, if ITI cancelation is used during normal operation, thesignal-to-noise ratio (SNR) improvement afforded by its use will allowthe track density to be increased while still maintaining an acceptablylow rate of entering recovery, thus translating directly to a diskcapacity increase without a noticeable compromise in performance. Insome embodiments, if used in recovery, ITI cancelation is a powerfultool to significantly improve the SNR, thus significantly increasing theprobability of successfully recovering the data.

In various embodiments, ITI data from one or more side tracks isdetermined and/or canceled from the signal of a center track without theneed for complicated operations (e.g., matrix operations). In someembodiments, ITI data from one track is determined by performing acorrelation between the signal read from the center track and the knowndata of the side track. In some embodiments, ITI data from one or moreside tracks is determined and/or canceled from the signal of a centertrack without requiring side tracks to be phase aligned. In someembodiments, ITI cancelation can be performed with a technique forcompensating for frequency differences between the write-clocks of sidetracks. In some embodiments, a parallel architecture ITI cancelation isused to take into account frequency offsets and fragmented sectors. Insome embodiments, in the event that ITI cancelation fails to providesuccessful recovery of data from the center track, a technique is usedto correct the position of the read-head to successfully recover asector.

FIG. 2 shows an example of alignment between three adjacent tracks. Inthe example, the three adjacent tracks are Track N−1 and Track N+1. Thevertical dashed lines, such as dashed line 202, represent the (e.g.,time looping-based) sampling points of the signal read from centertrack, Track N. Each box represents a sampled bit and the number withina box represents that bit's position in the sequence of bits sampledfrom that track. As shown in the example, the sampled bits from TrackN−1, Track N, and Track N+1 are not perfectly aligned. The relativeoffset in alignment between adjacent tracks is sometimes caused by anuncertainty (e.g., due to a write clock) which exists when writing datato a hard-disk drive. In some embodiments, the result of suchuncertainty is that the physical location of data written to the drivecan only be controlled in a limited fashion and, therefore, thealignment of data in a side track is not known a-priori. Assume that Lrepresents the number of bits prior to or after bit k along Track N(i.e., b_(k−L) ^((N)), . . . , b_(k) ^((N)), . . . , b_(k+L) ^((N))).Note that bit k in Track N is aligned with bit (k−1) in Track N−1 (here,we denote the relative alignment between the center-track and the (N−1)track as L^((N−1))=−1 and bit (k−2) in Track N+1 (similarly,L^((N±1))=−2). For example, bit 2 of Track N is most significantlyaffected by bit 1 of Track N−1 and by bit 0 of Track N−1.

The digitized waveform (either equalized or unequalized) read from acenter track, Track N at time k(y_(k) ^((N))) can be expressed in termsof the bits written to Track N (b_(i) ^((N))), the pulse-shape of TrackN (h_(i) ^((N))), the bits written to Track N−1 (b_(i) ^((n−1))), thepulse-shape of Track N−1 (h_(i) ^((N−1))), the bits written to track N+1(b_(i) ^((N+1))), the pulse-shape of Track N+1 (h_(i) ^((N+1))), and thenoise sequence as,

y _(k) ^((N))=Σ_(i=−L) ^(L) h _(i) ^((N)) ·b _(k−i) ^((N))+Σ_(i=−L) ^(L)h _(i) ^((N−1)) ·b _(k−i−L) _((N−1)) ^((N−1))+Σ_(i=−L) ^(L) h _(i)^((N+1)) ·b _(k−i−L) _((N+1)) ^((N+1)) +n _(k) ^((N)).  (1)

In equation (1), the first summation (i.e., Σ_(i=−L) ^(L)h_(i)^((N))·b_(k−i) ^((N))) corresponds to the desired waveform data readfrom the magnetization of media in center track, Track N. The second andthird summations (i.e., Σ_(i=−L) ^(L)h_(i) ^((N−1))·b_(k−i−L) _((N−1))^((N−1)) and Σ_(i=−L) ^(L)h_(i) ^((N+1))·b_(k−i−L) _((N+1)) ^((N+1)))represent the ITI terms from side tracks, Tracks N−1 and N+1,respectively. These ITI terms from the side tracks are desired to becanceled from y_(k) ^((N)) to result in the desired waveform (i.e., thefirst summation of equation (1)) and noise n_(k) ^((N)) (which may ormay not be removable using noise cancelation techniques). As shown inequation (1), the center track sample at time k(y_(k) ^((N))) isaffected by L bits prior to, and L bits after, bit k along Track N (thisis commonly known as Inter-Symbol Interference (ISI)). The effect thatthe side track data has on the center track read-back signal, however,is offset by integer quantities L^((N−1)) and L^((N+1)) for Tracks N−1and Track N+1, respectively, i.e., bits (b_(k−i−L) _((N−1)) ^((N−1)), .. . , b_(k−L) _((N−1)) ^((N−1)), . . . , b_(k+L−L) _((N−1)) ^((N−1)))from Track N−1 and bits (b_(k−i−L) _((N+1)) ^((N+1)), . . . , b_(k−L)_((N+1)) ^((N+1)), . . . , b_(k+L−L) _((N+1)) ^((N+1)) from Track N+)1.Referring back to the example of FIG. 2, bit 4 of Track N is mostsignificantly affected by bit 3 of Track N−1 (i.e., L^((N−1))=−1) andbit 2 of Track N+1 (i.e., L^((N+1))=−2). While equation (1) assumes thatthe adjacent tracks are not phase aligned, equation (1) can be easilyextended to the aligned (i.e., L^((N+1))=L^((N−1))=0) case.

In equation (1), it is assumed that the relative phase offsets betweenTracks N and N−1 (i.e., L^((N−1))) and Tracks N and N+1 (i.e.,L^((N+1))) have been assumed to be integer values. However, as shown bythe example of FIG. 2, relative phase offsets are not necessarilyinteger values. The relative phase offsets can be assumed to benon-integer values, without a loss of generality. As is the case withany digital communication system, a continuous signal is first sampledand digitized. In doing so, the sampling phase of the interfering signalis also well-controlled (providing the frequency of writing theside-track and center-tracks are substantially similar). For example, asshown in the example of FIG. 2, by sampling the Track N signal in thecenter of each bit-cell, we are also sampling Track N−1 at a phase whichis ≈10% from the right edge of each bit-cell. Thus, this phasedifference between the center track, Track N, and the side tracks,Tracks N−1 and N+1, will be taken into the side track pulse-shapeestimation.

FIG. 3 is a diagram showing an embodiment of a system for ITIcancelation. In some embodiments, y ^((N)) 306 represents the sequenceof samples read from center track, Track N. y ^((N)) 306 can beequalized or unequalized. y ^((N)) 306 can be represented by equation(1), which shows that y ^((N)) 306 includes ITI from both side tracks,Tracks N−1 and N+1. System 300 shows an example of canceling ITI from y^((N)) 306. b ^((N−1)) 302 and b ^((N+1)) 304 represent sequences ofknown data from Track N−1 and Track N+1, respectively. While the exampleof system 300 shows canceling the ITI data contributed from both sidetracks, Tracks N−1 and N+1, ITI data from only one side track may becanceled from the data read from center track, Track N, at a time ifdesired.

Pulse/phase estimation 308 is configured to use y ^((N)) 306 and b^((N−1)) 302 to determine phase estimation L^((N−1)) and pulse shape h^((N−1)) associated with Track N−1 and pulse/phase estimation 310 isconfigured to use y ^((N)) 306 and b ^((N+1)) 304 to determine phaseestimation L^((N+1)) and pulse shape h ^((N+1)) associated with TrackN+1. In some embodiments and as discussed further below, pulse/phaseestimation 308 and 310 are configured to determine phase estimation L^((N−1)) and pulse shape h ^((N−1)) and phase estimation L^((N+1)) andpulse shape h ^((N+1)) by performing a correlation of y ^((N)) 306 and b^((N−1)) 302 and a correlation of y ^((N)) 306 and b ^((N+1)) 304,respectively, and then selecting a subset of the produced correlationcoefficients.

b ^((N−1)) 302 is input into delay 312 so that a delayed version of b^((N−1)) and L^((N−1)) are correlated at 318 to produce the estimatedITI from Track N−1. b ^((N+1)) 304 is input into delay 314 so that adelayed version of b ^((N+1)) 304 and L^((N+1)) are correlated at 316 toproduce the estimated ITI from Track N+1. The ITI from Track N−1 can becanceled from y^((N)) 306 at 322 and the ITI from Track N+1 can becanceled from y ^((N)) 306 at 320 produce the data read from Track Nwith ITI from Tracks N−1 and N+1 canceled out: {tilde over (y)}^((N))324. In some embodiments, pulse/phase estimation 308 and 310 are twoinstances of the same logic block. In various embodiments, pulse/phaseestimation 308 and 310 are implemented using one or both of hardware andsoftware.

FIG. 4 is a flow diagram showing an embodiment of a process forcanceling ITI from a center track. In some embodiments, process 400 canbe implemented at system 300.

In various embodiments, the ITI caused by either/both track(s) adjacentto Track N is determined and, if appropriate, canceled from the signalread from Track N. Process 400 can be used to determine the ITI from oneside track (e.g., Track N−1 or Track N+1) but can be repeated for theother side track.

At 402, an input sequence of samples associated with a track isreceived. In some embodiments, the input sequence of samples is adigitized waveform that is read from a center track (e.g., Track N). Theinput sequence of samples includes the ITI data from one or both sidetracks, as well as noise.

At 404, inter-track interference (ITI) data associated with a first sidetrack is generated, including by performing a correlation between theinput sequence of samples and a sequence of data associated with thefirst side track. In various embodiments, it is assumed that the datafrom the side track(s), which can be read before canceling ITI, areknown or can be estimated with a reasonable degree of accuracy. In someembodiments, the generated ITI data is canceled from the input sequenceof samples. In some embodiments and as discussed below, a threshold mustbe reached prior to canceling the ITI data from the input sequence ofsamples.

FIG. 5 is a flow diagram showing an embodiment of a process forgenerating ITI data associated with a side track. In some embodiments,process 500 can be implemented at system 300. In some embodiments, 404of process 400 can be implemented using process 500. Process 500 can beused to generate the ITI data from one side track (e.g., Track N−1 orTrack N+1) but can be repeated for the other side track.

At 504, a correlation is performed between an input sequence of samplesassociated with a track and a data sequence associated with a first sidetrack to generate a set of correlation coefficients. As mentioned inprocess 400, the input sequence of samples can be a digitized waveformthat is read from a center track (e.g., Track N). Also as mentioned inprocess 400, the data sequence associated with the side track is assumedto be known or accurately estimated (e.g., using a read processorconfigured to operate without the ITI cancelation technique describedherein).

At 506, a subset of the set of correlation coefficients is selected. Insome embodiments, one or more correlation coefficients can be selected.In some embodiments, the subset of correlation coefficients is selectedbased on detected peak values. In some embodiments, the subset ofcorrelation coefficients is selected based on detected maximum powervalues. In some embodiments, the subset of correlation coefficients isselected based on detecting the maximum absolute sum values.

At 508, the subset of correlation coefficients is used to determine arelative phase offset between the track and the first side track. Forexample, in FIG. 3, pulse/phase estimation 308 outputs phase estimationL^((N−1)) associated with Track N−1.

At 510, the subset of correlation coefficients is used to determine aside track pulse-shape associated with the first side track. Forexample, in FIG. 3, pulse/phase estimation 308 outputs pulse shape h^((N−1)) (which includes one or more pulse-shape coefficients)associated with Track N−1.

At 512, ITI data associated with the first side track is produced basedat least in part on the set of relative phase offsets between the trackand the first side track and the set of side track pulse-shapesassociated with the first side track. For example, convolution 318 inFIG. 3 outputs an estimate of the ITI from Track N−1. In someembodiments, the ITI data associated with the first side track iscomputed as a correlation between the set of side track pulse-shapes andthe data associated with the side track.

The following is an example of determining ITI data:

Estimating and canceling the ITI from either of side tracks, Track N−1and N+1, is performed similarly so for the purposes of illustration,only the estimation and cancelation of Track N−1 ITI is discussed below.

To perform cancelation of Track N−1 ITI, the following quantities arefirst determined:

1. h_(i) ^((N−1)), i=−L, . . . , L

2. L^((N−1))

Where H_(i) ^((N−1)) represents the pulse-shape of Track N−1 at relativephase offset i between Tracks N and N−1 and L^((N−1)) represents therelative phase offset between Tracks N and N−1. As shown in equation(1), the interfering signal read from the adjacent track is fullydescribed in terms of its pulse-shape (h_(i) ^((N−1))) (which comprisesa set of pulse-shape coefficients) and its integer phase misalignment(L^((N−1))). Thus, using estimates of these values, the side-trackinterference signal can be reconstructed and subtracted from thecenter-track signal. Put another way, the estimated set of pulse-shapecoefficients (h_(i) ^((N−1)), i=−L, . . . , L) and relative phase offsetL^((N−1)) are used to construct the ITI signal of Track N−1 (i.e., thesecond summation in equation (1)) and then canceled/subtracted from thecenter track's (Track N) read-back signal.

To estimate h_(i) ^((N−1)), i=−L, . . . , L and L^((N−1)), a correlationis performed between the sequence of samples read from Track N and theknown data of Track N−1. For example, the correlation can be illustratedas follows:

C _(m) ^((N−1))=Σ_(k=0) ^(T−1) y _(k) ^((N)) ·b _(k−m) ^((N−1))  (2)

Where C_(m) ^((N−1)) represents correlation coefficients, y_(k) ^((N))represents the digitized waveform (either equalized or unequalized) readfrom a center track (see equation (1)), b_(k−m) ^((N−1)) represents theknown data of Track N−1, T represents the length of the correlation (thenumber of bits over which correlation is performed) and m representspotential relative phase offsets between Tracks N and N−1. In someembodiments, T can be chosen to the length of a sector. In someembodiments and as further disclosed below, T can be chosen to be thelength of a portion of a sector (e.g., a fragment). In some embodiments,the set values for m is chosen to be a conservative or worst case inwhich the peak of C_(m) ^((N−1)) would be obtained over the set of m.For example, m can include the set of values that include the {−L_(max),. . . , L_(max)}, where L_(max) is selected to be a value large enoughsuch that the peak of C_(m) ^((N−1)) can be determined between −L_(max)and L_(max). In some embodiments, L_(max) is largely dictated byaccuracy and precision with which a sector may be written to the disk.

Substituting equation (1) into equation (2) gives,

C _(m) ^((N−1))=Σ_(i=−L) ^(L) h _(i) ^((N))Σ_(k=1) ^(T) b _(k−m)^((N−1)) b _(k−i) ^((N))+Σ_(i=−L) ^(L) h _(i) ^((N−1))Σ_(k=1) ^(T) b_(k−m) ^((N−1)) b _(k−i−L) _((N−1)) ^((N−1))+Σ_(i=−L) ^(L) h _(i)^((N−1))Σ_(k=1) ^(T) b _(k−m) ^((N−1)) b _(k−i−L) _((N+1))^((N+1))+Σ_(k=1) ^(T) b _(k−m) ^((N−1)) n _(k) ^((N)).  (3)

Equation (2) can be simplified using the following assumptions:

1. There is negligible correlation between the data-sequences written toTracks N−1, N, N+1.

2. There is negligible correlation between each side track data sequenceand the noise sequence of Track N.

3. There is negligible correlation between each side track data sequenceand shifts of itself.

Due to assumption 1, the following simplifications can be made:

Σ_(k=1) ^(T)b_(k−m) ^((N−1))b_(k−i) ^((N))=0  (4)

Σ_(k=1) ^(T)b_(k−m) ^((N−1))b_(k−i−L) _((N+1)) ^((N+1))=0.  (5)

Due to assumption 2, the following simplification can be made:

Σ_(k=1) ^(T)b_(k−m) ^((N−1))n_(k) ^((N))=0.  (6)

Due to assumption 3, for a given value of i, i≠m−L^((N−1)),

Σ_(k=1) ^(T)b_(k−m) ^((N−1))b_(k−i−L−) _((N−1)) ^((N−1))=0.  (7)

Whereas, for i=m−L^((N−1)),

Σ_(k=1) ^(T)b_(k−m) ^((N−1))b_(k−i−L−) _((N−1)) ^((N−1))=Σ_(k=1)^(T)b_(k−m) ^((N−1))b_(k−m) ^((N−1))=T.  (8)

From all of these simplifications, equation (3) can be re-expressed as:

C _(m) ^((N−1)) =T·h _(m−L) _((N−1)) ^((N−1)).  (9)

FIG. 6 shows an example of a plot of C_(m) ^((N−1)) over mε{−35, . . . ,35} where L_(max)=35. In the example, 35 was chosen to be the worst casescenario/presumed greatest possible shift/lag between Tracks N and N−1.The plot of FIG. 4 was obtained using a production hard-disk drive.

If C_(m) ^((N−1)) is computed mε{−35, . . . , 35}, from equation (9), itcan be seen that in computing correlation C_(m) ^((N−1)), pulse-shapesh_(i) ^((N−1)) (within a scale factor of T) were also computed (i.e.,h_(i) ^((N−1))=C_(m) ^((N−1))/T),

[h_(−L) _(max) _(−L) _((N−1)) ^((N−1)), . . . , h_(L) _(max) _(−L)_((N−1)) ^((N−1))].  (10)

To ensure that the entire side-track pulse shape [H_(−L), . . . , H_(L)](where each h_(i) is a pulse-shape coefficient) is produced by thiscomputation, the following must hold,

[−L _(max) −L ^((N−1)) ]≦−L and [L _(max) −L ^((N−1)) ]≧L  (11)

Or

L _(max) ≧[L−L ^((N−1))] and L _(max) ≧[L+L ^((N−1))].  (12)

Where L is the length of the pulse-shape. The length of L depends on anumber of factors such as the density of the bits written to the disk.For example, if data were written at twice the bit density, then thepulse-shape will be twice as long (i.e., L is twice as long). In variousembodiments, L is chosen to be long enough to capture the entirepulse-shape length. Referring back to FIG. 6. there are about 6-7correlation coefficients (C_(m) ^((N−1))) of significant magnitude(i.e., C_(m) ^((N−1))>0). All the remaining correlation coefficients areabout zero. Thus, in this example, L would need to be set to about 3(i.e., a pulse-shape would include 7 correlation coefficients) toencapsulate the whole pulse response.

In some embodiments, the values of L^((N−1)) that are observed inpractice depend on how accurately the write process can be controlledand, therefore, L_(max) is chosen to accommodate the worst-case scenariofor the system being considered. Put another way, a write process withrelatively good control over its write process (i.e., it can guaranteethat the start of an adjacent track and the start of a center track arerelatively close together) can use a smaller L_(max) than another writeprocess which does not have as much control over its write process.

With the computation of C_(m) ^((N−1)) given as equation (2) carried outfor mε{−L_(max), . . . L_(max)}, where L_(max) is chosen to satisfyequation (12), it is ensured that the entire side track pulse-shape h^((N−1))=[h_(−L) ^((N−1)). . . h_(L) ^((N−1))] is computed. In someembodiments, the computation of C_(m) ^((N−1)) can be conducted inparallel for each value of m.

The determined set of correlation coefficients C_(m) ^((N−1)) can beused to determine h_(i) ^((N−1)) and L^((N−1)). In various embodiments,a subset of the set of computed correlation coefficients C_(m) ^((N−1))can be used to determine h_(i) ^((N−1)) and L^((N−1)). For example, oneof the following techniques can be used to select the index (m*) of thecoefficient to use:

1. Peak detect: Defining the maximum absolute correlation index as:

m*=argmax_(mε{−L) _(max) _(+L, . . . , L) _(max) _(−L}) |C _(m)^((N−1))|  (13)

2. Maximum power: Defining the maximum power index as,

m*=argmax_(mε{−L) _(max) _(+L, . . . , L) _(max) _(−L})Σ_(i=−L) ^(L) [C_(m+i) ^((N−1))]²  (14)

3. Maximum absolute sum: Defining the maximum power index as,

m*=argmax_(mε{−L) _(max) _(+L, . . . , L) _(max) _(−L})Σ_(i=−L) ^(L) |C_(m+i) ^((N−1))|  (15)

As each of the three arg max functions of equations (13), (14), and (15)indicate a set of (one or more) values of m* for which the function thatis the argument of the arg max function (e.g., |C_(m) ^((N−1))|,Σ_(i=−L) ^(L)[C_(m+i) ^((N−1))]², and Σ_(i=−L) ^(L)|C_(m+i) ^((N−1))|)attains its largest value, the subset of selected correlationcoefficients can be represented as the set of C_(m*+i) ^((N−1)).

The side track pulse-shape and the relative offset values are given as,

$\begin{matrix}{{h_{i}^{({N - 1})} = \frac{c_{m^{*} + i}^{({N - 1})}}{T}},{i \in \left\{ {{- L},\ldots \mspace{14mu},L} \right\}}} & (16) \\{L^{({N - 1})} = {m^{*}.}} & (17)\end{matrix}$

For the example shown in FIG. 6, for L=3, all three techniques give theresult m*=1 and h ^((N−1))=[C⁻² ^((N−1)), . . . , C₄ ^((N−1))]/T. Thefollowing is an example of canceling ITI data from the signal read fromthe center track:

Continuing the example of performing ITI cancelation with the ITIcontributed from the side track, Track N−1, with the values of h^((N−1)) and L^((N−1)) determined above, ITI is canceled byreconstructing the interfering signal and subtracting it from eachsample of the center track read-back signal as:

{tilde over (y)} _(k) =y _(k)−Σ_(i=−L) ^(L) h _(i) ^((N−1)) ·b _(k−i−L)_((N−1)) ^(N−1))  (18)

Where {tilde over (y)}_(k) represents the signal of the center trackwith ITI from Track N−1 canceled out, y_(k) represents the read-backsignal of the center track, and Σ_(i=−L) ^(L)h_(i) ^((N−1)). b_(k−i−L)_((N−1)) ^(N−1)) represents the reconstructed (i.e., determined) ITIsignal from Track N−1. Note that y_(k) can be represented by equation(1).

As mentioned above, the techniques of determining ITI and canceling ITIshown for side track, Track N−1, can also be applied to the other sidetrack, Track N+1.

FIG. 7 shows an example of adjacent tracks with frequency offsets.Frequency offsets are caused at least in part by adjacent tracks beingwritten at different clock frequencies. In the example, the write-clockfor the top track is slower than the write-clock for the bottom track.To more clearly illustrate the frequency offset, bit 0 of both tracksbegin completely aligned (i.e., zero phase offset), and by the time bit24 of the top track occurs it is completely aligned with bit 25 of thebottom track (i.e., offset of 1 bit). Such frequency offsets cannegatively affect the determination and cancelation of ITI from sidetracks. The example given above for the determination and cancelation ofITI from side tracks assumes unchanging phase alignment (i.e., zerofrequency offsets) between adjacent tracks. However, as furtherdiscussed below, frequency offsets can exist between adjacent tracks andaffect the determination and cancelation of ITI from side tracks.

FIG. 8 shows an example of a plot of correlation coefficients withdifferent relative phase offsets. In the example, the left solid curveshows the C_(m) ^((N−1)) for a sector with L^((N−1))=0, the right solidcurve shows the C_(m) ^((N−1)) for a sector with L^((N−1))=1, the dashedline shows a sector with the first half of adjacent tracks withL^((N−1))=0 and the second half with L^((N−1))=1. Note that the dashedline is the average of the two solid lines. The example shows thatfrequency offsets act to average (smear) the pulse-shape estimates. Asthe frequency difference becomes more severe, its detrimental impact onthe pulse-shape estimation increases. If the frequency difference is toolarge, C_(m) ^((N−1)) goes to zero (i.e., it will not be possible toestimate the side-track pulse-shape).

In some embodiments, to mitigate the negative effects of frequencyoffsets on the ITI cancelation technique described herein, a sector isbroken into multiple segments (fragments) where the phase alignment isassumed to be constant over the segment and ITI is computed and canceledfor each fragment. For example, if there exists a 0.01% frequencydifference between adjacent sectors, then the alignment between thesectors will slip 1 bit-period every 10,000 bit-periods. Since currentsector lengths can be in excess of 30,000 bit-periods, choosing T (seeequation (2)) to be equivalent to the sector length would incur adrastic performance loss. So, in some embodiments, a sector is splitinto fragments of smaller length (for example, 2500 bit-periods, inwhich the phase alignment between adjacent sectors only drifts by 25% ofa bit-period). Put in other words, there is more frequency offset persector than there is per fragment because a sector includes more bitsthan a fragment. As such, h ^((N−1)) and L^((N−1)) may be estimated foreach fragment individually such that ITI may be canceled over these,relatively frequency-coherent, segments.

In practice, the amount of frequency offset which is present in ahard-disk drive is dependent on many factors (such as use of controlloops to strictly set the frequency of the write clock and mechanicalvariations in the hard-disk assembly (HDA)). Because the frequencyoffsets are dependent upon many factors (e.g., related to the drive), insome embodiments, the manner in which sectors are fragmented to combatthe offsets can be chosen based on the current system's performance(e.g., in some embodiments a fragment length is configurable orotherwise adjustable).

FIG. 9 shows an example in which a sector is fragmented based on theposition of Servo wedges. In some embodiments a sector may be fragmentedfor ITI cancelation purposes to align with the position of Servo wedges.The surface of a magnetic disk is segmented into regions in which datais stored and regions in which information (known as Servo) is storedwhich is used to drive many control subsystems to ensure reliableoperation of the drive. Since these Servo wedges occur at regularintervals, it is often the case that, given a sector start location, anentire sector cannot fit before the next Servo wedge. In the interest ofmaximizing the disk capacity, a portion of the sector is writtenpreceding the Servo wedge, and the remainder is written after the Servowedge. Sometimes, a single sector may be split across multiple Servowedges. As shown in the example of FIG. 9, sectors from three adjacenttracks are each split into three fragments.

When ITI is computed and canceled per each fragment, it cannot beassumed that the interference signal pulse-shapes or phase-offsets areequivalent between different fragments of the same sector. Thus, in someembodiments, the interference signal pulse-shapes or phase-offsets areindependently determined for each fragment of a sector.

FIG. 10 is a diagram showing an embodiment of a system for ITIcancelation, where ITI cancelation is independently performed for eachfragment. In the example, each computation engine (Computation Engine 1,Computation Engine 2, . . . , Computation Engine M) is configured todetermine the ITI for a corresponding fragment (e.g., of a sector). Forexample, Computation Engine 1 inputs (for a first fragment) the relevantdata for the center track and adjacent track to generate the ITIinformation for that fragment. Unnecessary information not needed forITI processing for that fragment may be input and ignored or not inputat all. As shown in the example, ITI can be determined and canceled foreach fragment of a sector in parallel and the ITI-canceled signals fromeach fragment can be combined back together to produce {tilde over (y)}^((N)). For exemplary purposes, system 1000 shows only canceling ITI forone side track, Track N−1, but ITI for the other side track, Track N+1,can be canceled in a similar manner. The two main inputs for eachcomputation engine are data-bits from the adjacent track b ^((N−1)) andthe digitized samples (equalized or unequalized) from the center-track(y ^((N))). In some embodiments, both the data-bits from the adjacenttrack b ^((N−1)) and the digitized samples (equalized or unequalized)from the center-track (y ^((N))) can be saved in memory (e.g., by thehardware) after each, respective, track is read. For example, in someembodiments the ITI cancelation process described herein is only used ifan initial read processing attempt (e.g., which did not include this ITIcancelation technique) fails. In some embodiments, b ^((N−1)) is passedto system 1000 by the hard disk controller. The other system inputs of(S₁, S₂, . . . , S_(M)) and (L₁, L₂, . . . , L_(M)) are the fragmentstart locations and fragment lengths, respectively. In some embodiments,the values of (S₁, S₂, . . . , S_(M))and (L₁, L₂, . . . , L_(M)) are setby firmware since hardware may be unaware of the format of sectorswritten to the disk. The fragmentation of sectors can be set in avariety of ways. In some embodiments, the sector fragmentation is set byhardware; the values are set can be determined by an estimate of thefrequency offset that is preset. In some embodiments, the sectorfragmentation is set by firmware. In some embodiments, hardware cannotify the firmware when ITI cancelation is completed (i.e., thecomputation of {tilde over (y)} ^((N)) is completed). As such, thevalues of (S₁, S₂, . . . , S_(M)) and (L₁, L₂, . . . , L_(M)) may bereset in order to begin ITI cancelation on another set of M fragments.In this way, the number of computation engines utilized to compute{tilde over (y)} ^((N)) need not be a limiting factor for the number offragments that a sector may be split into.

Although in the above examples, the digitized read-back signal (orequalized digital signal) was directly used to estimate the side trackpulse-shape using the correlation function given by equation (2), insome embodiments, the error signal may, instead, be used to estimateside track pulse-shape. In some embodiments, the simplifications ofequations (4), (5), (6), and (7) are better suited for infinitely-longrandom sequences and not as well for finite length sequences. Of thefour simplifications, equation (4) is the most exposed since it ismultiplied by h ^((N)). Since the center track is being read, h ^((N))contains significantly more power than or h ^((N−1)) or h ^((N+1)) and,therefore, even if the correlation between the data written to Tracks Nand N−1 is small, the contribution of this term may not be. As such, insome embodiments, h ^((N)) can be removed before computing thecorrelation function. In many read-channel architectures, the centertrack pulse-shape h ^((N)) is known or can be easily estimated.Furthermore, the data from Track N b ^((N)) may be estimated with areasonable degree of accuracy using the sequence y ^((N)) and,therefore, this term can be reasonable estimated as,

ŷ _(k) ^((N))=Σ_(i=−L) ^(L) h _(i) ^((N)) ·{circumflex over (b)} _(k−i)^((N))  (19)

Where {circumflex over (b)}^((N)) is the estimated data from Track N.Using ŷ_(k) ^((N)), an error term is computed as,

e _(k) ^((N)) =y _(k) ^((N)) −ŷ _(k) ^((N)),  (20)

Which is used to compute the correlation function

{tilde over (C)} _(m) ^((N−1))=Σ_(k=0) ^(T−1) e _(k) ^((N)) ·b _(k−m)^((N−1)).  (21)

Note that equation (21) is equation (2) where e_(k) ^((N)) issubstituted for y_(k) ^((N)). Here, {tilde over (C)}_(m) ^((N−1) is usedto compute the side track pulse-shape. The techniques for extractingside track pulse-shapes as discussed above can also apply for using theerror signal e_(k) ^((N)) to perform ITI cancelation.

In some embodiments, whether ITI cancelation from one or both sidetracks is performed depends on whether a side track threshold is met orexceeded. One reason for ignoring the ITI from either or both of theside tracks is that sometimes the noise introduced into the system bycanceling ITI may exceed the added value of performing ITI cancelation.For example, if the read-head were positioned very close to Track N−1(far away from Track N+1), then creating and canceling an interferencesignal for Track N+1 may add more noise to the system than it removes(since it cannot be estimated with a high degree of accuracy). As such,in some embodiments, a subset of correlation coefficients can bedetermined (e.g., using one of methods as described by equations (13),(14), and (15)) but if the function (e.g., Σ_(i=−L) ^(L)[C_(m+i)^((N−1))]², and Σ_(i=−L) ^(L)|C_(m+i) ^((N−1))|) being maximized or amaximum absolute value that is being detected (e.g., |C_(m) ^((N−1))|)does not exceed a set threshold, then no ITI cancelation is performedfor that side track.

FIG. 11 is an example of a plot of Soft-Output Vertibi Algorithm (SOVA)bit rate error (BER) as a function of the read-offset with and withoutthe use of ITI cancelation. As shown in the example, with the use of ITIcancelation, the track width is significantly increased, and the BER issignificantly decreased. To produce the plot of the example, aproduction hard-disk drive was used to perform a shingled-write. Thecenter track, Track N, was read a number of times at differentread-offset values (i.e., deviations from the center of the track) andthe digitized samples were collected for each read. These samples werethen applied to bit-true models of the designed methodologies toestablish the performance with and without the use of ITI cancelation.As shown in the example, for a give SOVA BER, the effective track width(i.e., the width of the track such that the SOVA BER is achievable) issignificantly increased. For example, a target SOVA BER of 2e-2 isachievable for read-offset positions of [−6%, 3%] (9% of the track)without ITI cancelation, whereas it is achievable for read-offsetpositions of [−13%, 7%] (20% of the track) using ITI cancelation.Furthermore, for a given read-offset value, the achievable SOVA BER canbe significantly reduced using ITI cancelation.

FIG. 12 is an example of SOVA BER using ITI cancelation and theindividual interference noise powers and the total interference power.In the example, the top plot depicts the SOVA BER using ITI cancelationand the bottom plot shows the plotted curves associated with individualinterference noise powers P^((N−1)) and P^((N+1)) (dashed lines) and thetotal interference power (solid line). As shown in the example, there isa strong correlation between the read-offset position which balancesP^((N−1)) and P^((N+1)) and the BER optimal read-offset position (whichis at approximately read-offset of 3.5 percent of track width). Based onthis observed correlation, in some embodiments, if after performing ITIcancelation of one or both side tracks from the read-back signal of acenter track, and the data of the center track cannot be successfullyrecovered, the position of the read head can be adjusted to improve thelikelihood that the read-back signal from the center track will besuccessfully recovered on a subsequent read. In some embodiments, theposition of the read head can be adjusted based on ITI noise powers ofthe side tracks.

FIG. 13 is a flow diagram showing an embodiment of a process fordetermining a new position for a read-head. In some embodiments, process1300 can be implemented at system 100.

At 1302, error correction processing, associated with an input sequenceof samples with the ITI data associated with the first side track andthe ITI data associated with the second side track removed, isperformed.

At 1304, it is determined whether the error correction processing hasfailed. In the event the error correction processing has failed, controlpasses to 1306. In the event that the error correction processingsucceeds, process 1300 ends.

At 1306, a new position associated with a read-head is generated basedat least in part on a power value associated with the ITI dataassociated with the first side track and a power value associated withthe ITI data associated with the second side track.

For example, if read processing fails using the ITI cancelationtechnique described herein, it can be determined which contribution fromthe side tracks is stronger. If the contribution from Track N−1 isstronger (for example), then it may be concluded that the read head iscloser to that track and the read-head is moved away from Track N−1 andtowards Track N+1 (ideally so that it is between the two adjacent tracksand directly over Track N). Using the new read-head position, data fromthe center track is read back and read processing is performed (e.g.,with or without the ITI cancelation technique described herein).

Referring back to the example of FIG. 12, a common reason for which dataeven after ITI cancelation cannot be successfully recovered is that theread-head was not positioned over the center track in a BER optimallocation. Thus, knowledge of an incorrect read-position can be utilizedto compensate on subsequent reads.

For example, as shown above, in determining the ITI of a side track, thepulse shape (e.g., h_(i) ^((N−1)) or h_(i) ^((N+1))) of that side trackis estimated. Using such pulse-shape estimates, the read-back power fromthe side tracks are computed as:

p^((N−1))=Σ_(i=−L) ^(L)[h_(i) ^((N−1))]²  (22)

p^((N+1))=Σ_(i=−L) ^(L)[h_(i) ^((N+1))]².  (23)

P^((N−1)) and P^((N+1)) can therefore be easily computed and madeavailable to the hard-disk controller. By plotting the P^((N−1)),P^((N+1)), and their sum (P^((N−1))+P^((N+1))) along a plot such as thebottom plot of FIG. 12, the read-head position can be adjusted to be ata new position associated with the read-offset location of the lowestpoint of the P^((N−1))+P^((N+1)) curve for a subsequent read to improvethe probability that the sector can be recovered.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, the invention is not limitedto the details provided. There are many alternative ways of implementingthe invention. The disclosed embodiments are illustrative and notrestrictive.

1. A method, comprising: receiving an input sequence of samplesassociated with a track on magnetic storage; using a processor togenerate inter-track interference (ITI) data associated with a firstside track including by performing a correlation between the inputsequence of samples and a sequence of data associated with the firstside track.
 2. The method of claim 1, further comprising removing theITI data associated with the first side track from the input sequence ofsamples.
 3. The method of claim 1, wherein generating ITI data includesgenerating a set of correlation coefficients and selecting a subset ofthe set of correlation coefficients.
 4. The method of claim 3, whereinthe selected subset of correlation coefficients is used to determine arelative phase offset between the track and the first side track.
 5. Themethod of claim 3, wherein the selected subset of correlationcoefficients is used to determine a side track pulse-shape associatedwith the first side track.
 6. The method of claim 3, wherein selecting asubset of the set of correlation coefficients is based at least in parton a peak value associated with the set of correlation coefficients. 7.The method of claim 3, wherein selecting a subset of the set ofcorrelation coefficients is based at least in part on a maximum powervalue associated with the set of correlation coefficients.
 8. The methodof claim 3, wherein selecting a subset of the set of correlationcoefficients is based at least in part on a maximum absolute sum valueassociated with the set of correlation coefficients.
 9. The method ofclaim 1, further comprising determining whether a function associatedwith the set of correlation coefficients exceeds a set threshold, and inthe event that the function exceeds the set threshold, removing the ITIdata from the input sequence of samples and in the event that thefunction does not exceed the set threshold, not removing the ITI datafrom the input sequence of samples.
 10. The method of claim 1, whereingenerating ITI data associated with the first side track includesindependently generating ITI data for each of two or more fragmentsassociated with the first side track.
 11. The method of claim 10,wherein each of the two or more fragments associated with the first sidetrack are determined based on locations corresponding to a plurality ofservo wedges.
 12. The method of claim 10, further comprising removingITI data generated for each of the two or more fragments from the inputsample of sequences.
 13. The method of claim 1, further comprisinggenerating ITI data associated with a second side track including byperforming a correlation between the input sequence of samples and asequence of data associated with the second side track.
 14. The methodof claim 13, further comprising removing the ITI data associated withthe first side track and the ITI data associated with the second sidetrack from the input sequence of samples.
 15. The method of claim 14,further comprising: determining that error correction processing,associated with the input sequence of samples with the ITI dataassociated with the first side track and the ITI data associated withthe second side track removed, has failed; and generating a new positionassociated with a read-head based at least in part on a power valueassociated with the ITI data associated with the first side track and apower value associated with the ITI data associated with a second sidetrack.
 16. A system, comprising: a processor configured to: receive aninput sequence of samples associated with a track on magnetic storage;and generate inter-track interference (ITI) data associated with a firstside track including by performing a correlation between the inputsequence of samples and a sequence of data associated with the firstside track; and a memory coupled with the processor and configured toprovide the processor with instructions.
 17. The system of claim 16,wherein the processor is further configured to remove the ITI dataassociated with the first side track from the input sequence of samples.18. The system of claim 16, wherein to generate ITI data includesgenerating a set of correlation coefficients and selecting a subset ofthe set of correlation coefficients.
 19. The system of claim 18, whereinthe selected subset of correlation coefficients is used to determine arelative phase offset between the track and the first side track. 20.The system of claim 18, wherein the selected subset of correlationcoefficients is used to determine a side track pulse-shape associatedwith the first side track.
 21. The system of claim 16, wherein theprocessor is further configured to determine whether a functionassociated with the set of correlation coefficients exceeds a setthreshold, and in the event that the function exceeds the set threshold,to remove the ITI data from the input sequence of samples and in theevent that the function does not exceed the set threshold, to not removethe ITI data from the input sequence of samples.
 22. The system of claim16, wherein to generate ITI data associated with the first side trackincludes independently generating ITI data for each of two or morefragments associated with the first side track.
 23. The system of claim22, wherein the processor is further configured to remove ITI datagenerated for each of the two or more fragments from the input sample ofsequences.
 24. The system of claim 16, wherein the processor is furtherconfigured to generate ITI data associated with a second side trackincluding by performing a correlation between the input sequence ofsamples and a sequence of data associated with the second side track.25. The system of claim 24, wherein the processor is further configuredto remove the ITI data associated with the first side track and the ITIdata associated with the second side track from the input sequence ofsamples.
 26. The system of claim 25, wherein the processor is furtherconfigured to: determine that error correction processing, associatedwith the input sequence of samples with the ITI data associated with thefirst side track and the ITI data associated with the second side trackremoved, has failed; and generate a new position associated with aread-head based at least in part on a power value associated with theITI data associated with the first side track and a power valueassociated with the ITI data associated with a second side track.
 27. Acomputer program product, the computer program product being embodied ina non-transitory computer readable medium and comprising computerinstructions for: receiving an input sequence of samples associated witha track on magnetic storage; generating inter-track interference (ITI)data associated with a first side track including by performing acorrelation between the input sequence of samples and a sequence of dataassociated with the first side track.